package test;

//引入 Scanner类
import java.util.Scanner;

public class T5 {
	
	
	/**
	 * 一般方法 ，枚举
	 * 找到两个数中最小的，由于 最大公约数 <= min ,从min开始往下找
	 */
	public static void commonMethod() {
		// 实例化scanner类
		Scanner sc = new Scanner(System.in);

		int a = sc.nextInt();
		int b = sc.nextInt();
		int min, ans = 1;   // min 两个数中小的数，ans 答案
		if (a < b) {
			min = a;
		} else {
			min = b;
		}
		for (int i = min; i > 0; i--) {
			if (a % i == 0 && b % i == 0) {
				ans = i;
				break;
			}
		}
		System.out.println(ans);
	}

	/**
	 * 简化一般方法 变量减少，指令减少
	 */
	public static void shortMethod() {
		// 实例化scanner类
		Scanner sc = new Scanner(System.in);
		/* 简化版本 */
		int a = sc.nextInt(), b = sc.nextInt(), min = a < b ? a : b;
		for (int i = min; i > 0; i--) {
			if (a % i == 0 && b % i == 0) {
				System.out.println(i);
				break;
			}
		}
	}
	
	/**
	 * 辗转相除法
	 */
	public static void divisionMethod() {
		// 实例化scanner类
		Scanner sc = new Scanner(System.in);

		int a = sc.nextInt();
		int b = sc.nextInt();
		// 假定第一个数较大；如果第二个较大，在第二轮会颠倒过来
		// 如果第二个数为 0，则第一个数就是最大公约数
		while (b != 0) {
			// 求余
			int remainder = a % b;
			// 交换数，等同递归调用
			a = b;
			b = remainder;
		}
		System.out.println(a);
	}

	public static void main(String[] args) {
//		commonMethod();
//		shortMethod();
		divisionMethod();

	}
}
